package cn.edu.sjtu.stap.cfg.builder;

/**
 * Interface of factory for creating concrete CFG builder.
 * 
 * @author William
 * 
 */
public abstract class ICfgBuilderFactory {
    /**
     * Create a CFG builder from this factory.
     * 
     * @return ICfgBuilder a concrete CFG builder.
     */
    public abstract ICfgBuilder getCfgBuilder();

    /**
     * Get the default CFG builder factory.
     * 
     * @return ICfgBuilderFactory the default CFG builder factory.
     */
    public static ICfgBuilderFactory getDefaultCfgBuilderFactory() {
        return DefaultCfgBuilderFactory.getInstance();
    }
}
